/*
    作者：zx
    时间：2022.11.24
    描述：互斥信号量
*/

#ifndef MUTEX_H
#define MUTEX_H

#include "tools/list.h"
#include "core/task.h"

// 互斥锁
typedef struct 
{
    task_t * owner;
    // 被上锁次数、读者写者问题
    int locked_count;
    // 等待该资源的任务队列
    list_t wait_list;
}mutex_t;

void mutex_init(mutex_t * mutex);
void mutex_lock(mutex_t * mutex);
void mutex_unlock(mutex_t * mutex);

#endif // !MUTEX_H